# -*- coding: utf-8 -*-
# 作者： 安智军
# @Time：2022/7/9 23:04
# @Email：1010666711@qq.com
# @File： 作业.py

'''
nums = [1,22,33,4,7,-1] ---》【22,23,7】
把大于5的数过滤出来 放到一个列表中

'''

# 需求：nums = [1,22,33,4,7,-1] ---》【22,23,7】

# 方法一  使用for 循环实现

nums = [1, 22, 33, 4, 7, -1]

new_num = []

for num in nums:
    if num >= 5:
        new_num.append(num)


# print(new_num)

# 方法二、使用递归实现 怎么样的方法最优雅？

# def get_num():
#     nums1 = [1, 22, 33, 4, 7, -1]
#     new_num1 = []
#     if len(nums1) != 0:
#         for i in nums1:
#             if i <= 5:
#                 nums1.remove(i)
#                 nums1 = nums1
#                 get_num()
#             else:
#                 new_num1.append(i)
#         print(new_num1)
#
#
# # nums1 = [1, 22, 33, 4, 7, -1]
# # get_num(nums1=nums1)
# get_num()


def filter_num(nums,mark = 5):
    '''
    从nums中过滤出大于5的数

    :param nums:
    :param mark:
    :return: 新的list 大于5的list
    '''

    # 列表推导式
    # return [num for num in nums if num>mark]
    # 匿名函数过滤
    return list(filter(lambda x:x>5,nums))


nums =  [1, 22, 33, 4, 7, -1]

print(filter_num(nums)) # [22, 33, 7]


